const electron = require('electron');
// 获取环境变量
const env = process.env.NODE_ENV || 'development';
const path = require('path')
// import { app, ipcMain } from 'electron';
	// build打包模式需要加俩点
	// var NODE_ENV= 'production'
	var NODE_ENV= env|| 'dev'
	// var NODE_ENV=  'dev'
	var dir=""
	if (NODE_ENV === 'production') {
		dir= '../';	
	}
const {
	app,
	BrowserWindow,
	Menu,
	remote
} = electron;
	var {
		_config
	} = require('./'+dir+'app/config/config.js');
// const _config =  '@/app/config/config.js';
// console.log(_config)

function createWindow2() {
	win = new BrowserWindow({
		// 无边框
		// frame: false,
		width: 1500,
		height: 800,
		minHeight: 800,
		minWidth: 1500,
		fullscreen: true,
		webPreferences: {
			webSecurity: false,
			contextIsolation: false,
			nodeIntegration: true,
			enableRemoteModule: true,
			webviewTag: true,
		},
	})
	if (NODE_ENV != 'production') {
				win.webContents.openDevTools() // 打开控制台
	}
	// fullscreen  全屏  //show :false 隐藏窗口
	// win = new BrowserWindow({autoHideMenuBar:true,show:false,fullscreen:false});
	// 设置菜单栏
	var title= _config.v ? _config.v : "";
	// '名称：' + _config.title ? _config.title : ';' + '版本号：' +
	const template = [{
		label: '菜单',
		submenu: [
			{
				label: '版本信息',
				accelerator: 'Ctrl+W',
				click: () => {
					electron.dialog.showMessageBox({
						// type: 'info',
						title: '版本信息',
						message: title+"；\nq群:318684162",
						cancelId: 1, //这个的值是如果直接把提示框×掉返回的值，这里设置成和“取消”按钮一样的值，下面的idx也会是1
					}).then(idx => {
						//注意上面↑是用的then，网上好多是直接把方法做为showMessageBox的第二个参数，我的测试下不成功
						// console.log(idx)
						if (idx.response == 1) {
							console.log('index==1，')
						}
					})
				}
			},
			{
				label: '最小化',
				accelerator: 'ESC',
				click: () => {
					// win.minimize();
					    //若最小化则还原
					    if (win) {
					        if (win.isMinimized()) 
					        { 
					            win.restore(); 
					        }else{
							  win.minimize();
							}
					       // win.focus();
					    }
				}
			},
			{
				label: '关闭',
				accelerator: 'Ctrl+Q',
				click: () => {
					win.close()
				}
			},
		]
	},{
		label: 'q群:318684162',
		}]
	const menu = Menu.buildFromTemplate(template);
	Menu.setApplicationMenu(menu);
	// build打包模式需要加俩点

		win.loadURL(path.join(__dirname, dir+'app/main/index.html'));	

	// 调试模式不需要加
	//win.loadURL(path.join(__dirname, 'app/main/index.html'));
	// win.loadFile(path.join(__dirname, '../app/main/index.html'))
	// win.loadFile('index.html')
	// win.loadFile('http://a.01film.cn')
		// win.loadURL('http://a.01film.cn'); //设置访问地址
		win.setTitle("瑞雪传奇"); //设置程序Title
	//mainWindow要关闭时的方法↓
	win.on('close', e => {
		e.preventDefault(); //先阻止一下默认行为，不然直接关了，提示框只会闪一下
		electron.dialog.showMessageBox({
			type: 'info',
			title: '提示',
			message: '确认退出？',
			buttons: ['确认', '取消'], //选择按钮，点击确认则下面的idx为0，取消为1
			cancelId: 1, //这个的值是如果直接把提示框×掉返回的值，这里设置成和“取消”按钮一样的值，下面的idx也会是1
		}).then(idx => {
			//注意上面↑是用的then，网上好多是直接把方法做为showMessageBox的第二个参数，我的测试下不成功
			// console.log(idx)
			if (idx.response == 1) {
				// console.log('index==1，取消关闭')
				e.preventDefault();
			} else {
				// console.log('index==0，关闭')
				win = null
				app.exit();
			}
		})
	});
}

app.on('ready', createWindow2);